findBy*
用途
使用domain类属性动态创建Grails查询方法表达式,返回查询第一条结果。
举例
假定domain类Book
如下:
class Book {
Long id
Long version
String title
Date releaseDate
String author
}
下面是一些可能用法:
def b = Book.findByTitle
("The Shining")
b = Book.findByTitleAndAuthor("The Sum of All Fears", "Tom Clancy")
b = Book.findByReleaseDateBetween(firstDate, new Date())
b = Book.findByReleaseDateGreaterThanEquals(firstDate)
b = Book.findByReleaseDateLessThanEquals(firstDate)
b = Book.findByTitleLike("%Hobbit%")
b = Book.findByTitleIlike("%Hobbit%") // (since 0.5) - ignorecase
b = Book.findByTitleNotEqual("Harry Potter")
b = Book.findByReleaseDateIsNull()
b = Book.findByReleaseDateIsNotNull()
描述
GORM支持 Dynamic Finders 概念,findBy*
方法按照给定方法表达式查找第一条结果。
如下操作名可以用于组合动态方法:
LessThan
LessThanEquals
GreaterThan
GreaterThanEquals
Between
Like
Ilike
(i.e. ignorecase like)
IsNotNull
IsNull
Not
Equal
NotEqual
And
Or
上面操作名被认为是关键字,如果与domain类属性名字相同的话,运行时会出问题,更多信息可参考用户手册的动态查找器章节。